package com.hao.main;

import java.util.ArrayList;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import  GiaoHangVietNam.Entities.InvoiceDetails;

public class InvoiceArrayAdapter extends ArrayAdapter<InvoiceDetails> {
	MainActivity context = null;
	ArrayList<InvoiceDetails> invoiceArray = null;
	int layoutId;
	
	public InvoiceArrayAdapter(MainActivity context, int layoutId,
			ArrayList<InvoiceDetails> arr) {
		super(context, layoutId, arr);
		this.context = context;
		this.layoutId = layoutId;
		this.invoiceArray = arr;
	}
	public View getView(int position, View convertView, ViewGroup parent) {
		/**
		 * bạn chú ý là ở đây Tôi không làm: if(convertView==null) {
		 * LayoutInflater inflater= context.getLayoutInflater();
		 * convertView=inflater.inflate(layoutId, null); } Lý do là ta phải xử
		 * lý xóa phần tử Checked, nếu dùng If thì nó lại checked cho các phần
		 * tử khác sau khi xóa vì convertView lưu lại trạng thái trước đó
		 */
		LayoutInflater inflater = context.getLayoutInflater();
		convertView = inflater.inflate(layoutId, null);
		
			// dòng lệnh lấy TextView ra để hiển thị loại mặt hàng
			final TextView nameGoodTv = (TextView) convertView
					.findViewById(R.id.invoice_goodsname_tv);
			// lấy ra Ship Object
			final InvoiceDetails invoiceObject = invoiceArray.get(position);
			// đưa thông tin lên TextView
			// emp.toString() sẽ trả về Id và Name
			String goodNames="";
			for(int i=0;i<invoiceObject.ListGoods.size();i++)
			{
				if(i!=0)
					goodNames+=",";
				goodNames+= invoiceObject.ListGoods.get(i).GoodsName;
			}
			nameGoodTv.setText(goodNames);
			// nếu là Nữ thì lấy hình con gái
		    final TextView addressCustomer = (TextView)convertView
		    		.findViewById(R.id.invoice_address_tv);
		    addressCustomer.setText(invoiceObject.Address + "" );
		    
		    final TextView status= (TextView)convertView.findViewById(R.id.invoice_status_tv);
		    if(invoiceObject.IsFinish==true)
		    {
		    	status.setText("Đã hoàn thành");
		    }
		    else
		    {
		    	if(invoiceObject.IsWaiting==true)
		    	{
		    		status.setText("Trạng thái chờ");
		    	}
		    	else
		    	{
				    if(invoiceObject.IsSending ==true)
				    {
				    	status.setText("Yêu cầu giao");
				    }
				    else
				    {
				    	status.setText("Yêu cầu nhận");
				    }
		    	}
		    }
		// Vì View là Object là dạng tham chiếu đối tượng, nên
		// mọi sự thay đổi của các object bên trong convertView
		// thì nó cũng biết sự thay đổi đó
		return convertView;// trả về View này, tức là trả luôn
		// về các thông số mới mà ta vừa thay đổi
	}
	@Override
	public void notifyDataSetChanged() {
		// TODO Auto-generated method stub
		super.notifyDataSetChanged(); 
	}
	  
    
}
